/**
 * fs
 * api
 *
 * 异步API
 * 1.readFile 		读取文件
 * 2.writeFile 		写入文件
 * 3.appendFile 	插入文件内容
 * 4.copyFile 		复制文件  // 通过使用 COPYFILE_EXCL，如果 destination.txt 存在，则该操作将失败。
 *  copyFile('source.txt', 'destination.txt', constants.COPYFILE_EXCL, callback);
 * 5.open			打开文件
 * 6.close			打开文件
 * 7.access			测试用户对 path 指定的文件或目录的权限
 * 要检查文件是否存在而不对其进行操作，建议使用 fs.access()。
 * 8.stat
 * 不推荐在调用 fs.open()、fs.readFile() 或 fs.writeFile() 之前使用 fs.stat() 检查文件是否存在。
 * 而是，用户代码应该直接打开/读取/写入文件，并在文件不可用时处理引发的错误。
 * 9.mkdir			创建目录
 * 10.readdir		读取目录
 * 11.rmdir			删除目录
 * 12.unlink		删除文件
 * 13.watch  		监听文件
 * 14.unwatchFile   停止监听
 *
 * 同步API
 * 1.readFileSync	读取文件
 * 2.writeFileSync	写入文件
 * 3.appendFileSync	插入文件内容
 * 4.copyFileSync	复制文件
 * 5.openSync		打开文件
 * 6.closeSync		打开文件
 * 7.accessSync		测试用户对 path 指定的文件或目录的权限
 * 要检查文件是否存在而不对其进行操作，建议使用 fs.access()。
 * 8.statSync		获取目录及文件信息
 * 不推荐在调用 fs.open()、fs.readFile() 或 fs.writeFile() 之前使用 fs.stat() 检查文件是否存在。
 * 而是，用户代码应该直接打开/读取/写入文件，并在文件不可用时处理引发的错误。
 * 9.mkdirSync		创建目录
 * 10.readdirSync		读取目录
 * 11.rmdirSync		删除目录
 * 12.unlinkSync		删除文件
 *
 */

const {
	readFile, writeFile, appendFile, copyFile, constants, open, close, access, stat, mkdir, readdir, rmdir, unlink

} = require('fs')
const pathA = './file/a.txt'

// readFile(pathA, 'utf-8', (err, data) => {
// 	if (err) throw err
// 	console.log(data);
// })

// writeFile(pathA, 'hello change', (err) => {
// 	if (err) throw err
// console.log('The file has been saved');
// })

// appendFile(pathA, 'append word', (err) => {
// 	console.log(err);
// 	if (err) throw err
// 	console.log('The file has been saved');
// })

// copyFile(pathA, './file/copy.txt', constants.COPYFILE_EXCL, (err) => {
// 	if (err) throw err
// })

// open(pathA, (err, fd) => {
// 	if (err) throw err
// 	console.log(fd);
// 	// close(fd, err => {
// 	// 	if (err) throw err
// 	// })
// })

// access(pathA, (err) => {
// 	if (err) throw err
// })

// stat(pathA, (err, stat) => {
// 	if (err) throw err
// 	console.log(stat);
// })

// mkdir('./file/b/v', { recursive: true }, err => {
// 	if (err) throw err
// })
// readdir('./file', (err, files) => {
// 	if (err) throw err
// 	console.log(files);
// })
// rmdir('./file/b', { recursive: true }, err => {
// 	if (err) throw err
// })
// unlink('./file/b', err => {
// 	if (err) throw err
// })


const { readFileSync } = require('fs')
const handleReadFile = async (file) => {
	let result = await readFileSync(file, { encoding: 'utf8' })
	console.log(result);
}
handleReadFile('./file/a.txt')
